package br.com.skpharma.dao;

import java.util.ArrayList;

import br.com.skpharma.db.DB;
import br.com.skpharma.vo.CategoriaVO;
import br.com.skpharma.vo.LaboratorioVO;
import br.com.skpharma.vo.MedicamentoVO;
import br.com.skpharma.vo.ModeloVO;
import br.com.skpharma.vo.PrateleiraVO;
import br.com.skpharma.vo.PrincipioAtivoVO;
import br.com.skpharma.vo.TipoVO;

public class DAOBusca {
	
	private DB db = new DB("jdbc:postgresql://localhost:5432/skpharma","postgres","postgres");
	
	
	public ArrayList obterListaMed(){
		ArrayList lista = new ArrayList();
		MedicamentoVO medicamentoVO;
		DAOLaboratorio daoL = new DAOLaboratorio();
		DAOPrincipioAtivo daoP = new DAOPrincipioAtivo();
		DAOCategoria daoC = new DAOCategoria();
		if(db.connect()){
			db.select("select medicamento.*  from medicamento  where medicamento.quantidade <" + 5);
			while(db.moveNext()){
				
				
				daoP.obter(db.getInt("cd_principioativo"));
				
				daoL.obter(db.getInt("cd_laboratorio"));
				
				daoC.obter(db.getInt("cod_codcategoria"));
				medicamentoVO = new MedicamentoVO( db.getInt("cod_medicamento"),  db.getString("ds_medicamento"), db.getInt("quantidade"),   db.getFloat("preco"), db.getString("conteudo"), new LaboratorioVO(daoL.getLaboratorioVO().getCod(),daoL.getLaboratorioVO().getDs()), new PrincipioAtivoVO(daoP.getPrincipioAtivoVO().getCod(),daoP.getPrincipioAtivoVO().getDs()), new CategoriaVO(daoC.getCategoriaVO().getCod(),daoC.getCategoriaVO().getDs()));
				lista.add(medicamentoVO);
			}
			db.disconnect();
		}		
		return lista;
	}
	
	public ArrayList obterListaPra(){
		ArrayList lista = new ArrayList();
		PrateleiraVO prateleiraVO;
		DAOModelo daoModelo;
		DAOTipo daoTipo;
		DAOCategoria daoCategoria;
		if(db.connect()){
			db.select("select prateleira.*  from prateleira where prateleira.quantidade <" + 5);
			while(db.moveNext()){
				daoModelo = new DAOModelo();
				daoModelo.obter(db.getInt("cd_modelo"));
				daoTipo = new DAOTipo();
				daoTipo.obter(db.getInt("cd_tipoprateleira"));
				daoCategoria = new DAOCategoria();
				daoCategoria.obter(db.getInt("cod_codcategoria"));
				prateleiraVO = new PrateleiraVO(db.getInt("cod_prateleira"),db.getString("conteudo"), db.getInt("quantidade"), db.getFloat("preco"), new CategoriaVO(daoCategoria.getCategoriaVO().getCod(),daoCategoria.getCategoriaVO().getDs()), new TipoVO(daoTipo.getTipoVO().getCod(), daoTipo.getTipoVO().getDs()), new ModeloVO(daoModelo.getModeloVO().getCod(),daoModelo.getModeloVO().getDs(),daoModelo.getModeloVO().getMarcaVO()));
				lista.add(prateleiraVO);
			}
			db.disconnect();
		}		
		return lista;
	}
	

}
